gNeighborDataTableID = {}
gNeighborDataTableID["Business Rewards"] = 1
gNeighborDataTableID["Tokens"] = 2
gNeighborDataTableID["Learned Behaviors"] = 3
gNeighborDataTableID["Lycanthropy Saved Traits"] = 4
gNeighborDataTableID["Best Friends Forever List"] = 5
gNeighborDataTableID["ModularSynthSong"] = 6
gNeighborDataTableID["WitchNames"] = 7
{}["obj"] = nil
GenericNeighborDataTable = {}
GenericNeighborDataTable["__index"] = GenericNeighborDataTable
GenericNeighborDataTable["Rewards"] = {}
GenericNeighborDataTable["Rewards"]["Rewards"] = 1
GenericNeighborDataTable["BFF"] = {}
GenericNeighborDataTable["BFF"]["Remove/Add"] = 1
GenericNeighborDataTable["BFF"]["Time Left"] = 2
GenericNeighborDataTable["ModularSynthSong"] = {}
GenericNeighborDataTable["ModularSynthSong"]["NumberOfSongs"] = 0
GenericNeighborDataTable["WitchNames"] = {}
GenericNeighborDataTable["WitchNames"]["Firstname"] = 1
GenericNeighborDataTable["WitchNames"]["Lastname"] = 2

function function_54(param0, param1, param2)
	{}["sim"] = param0
	{}["nghTable"] = NeighborDataTable["new"](param0)
	{}["tableID"] = param1
		if ({}["nghTable"]["hasTable"]({}["nghTable"], param1) ~= 1) then 
	

		{}["nghTable"]["newTable"]({}["nghTable"], param1, param2)
	end
	setmetatable({}, GenericNeighborDataTable)
	return {}
end

GenericNeighborDataTable["new"] = function_54

function function_57(param0, param1, param2)
	param0["nghTable"]["setTableValue"](param0["nghTable"], param0["tableID"], param1, param2)
end

GenericNeighborDataTable["SetProperty"] = function_57

function function_60(param0, param1, param2)
	param0["nghTable"]["setTableValueAsInt"](param0["nghTable"], param0["tableID"], param1, param2)
end

GenericNeighborDataTable["SetPropertyAsInt"] = function_60

function function_63(param0, param1)
	myvar_2 = param0["nghTable"]["getTableValue"](param0["nghTable"], param0["tableID"], param1)
	return myvar_2
end

GenericNeighborDataTable["GetProperty"] = function_63

function function_66(param0, param1)
		if (param0["nghTable"]["hasTableValue"](param0["nghTable"], param0["tableID"], param1) ~= 0) then 
	

		param0["nghTable"]["removeTableValue"](param0["nghTable"], param0["tableID"], param1)
	end
end

GenericNeighborDataTable["RemoveProperty"] = function_66

function function_69(param0, param1)
	return {R2}({R3}, ..., {R5}); //TAILCALL
	return 
end

GenericNeighborDataTable["HasProperty"] = function_69

function function_72(param0)
	return {R1}({R2}, ..., {R3}); //TAILCALL
	return 
end

GenericNeighborDataTable["GetTableKeys"] = function_72
